package com.tanhua.dubbo.api;

import com.tanhua.model.mongo.*;
import com.tanhua.model.vo.TestOptionVo;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface TestSoulApi {

    /*查询所有试卷的方法*/
    List<TestPaper> getPages();

    /*查询所有的问题的方法*/
    Map<String, TestQuestion> getQuestions();

    /*查看所有选项的方法*/
    Map<String,  List<TestOptionVo>> getOptions(Set<String> questionIds);

    /*查询用户的报告*/
    List<Report> findAllReportByUserId(Long userId);

    /*根据当前试卷的id和用户的id去查询用户是否有已经生成的报告*/
    Report findReportByUserIdAndPaperId(String paperId, Long userId);

    /*根据问题的id去查询问题*/
    TestQuestion getQuestionById(String questionId);

    /*根据问题的id去查询选项*/
    TestOption getOptionById(String optionId);

    /*根据用户的id和问卷的编号判断一下用户是否存在相应的report对象*/
    Report findReportByUPId(Long userId, String pageId);

    /*删除这个report*/
    void deleteReport(Report hasRepot);

    /*保存report的方法*/
    String saveReport(Report report);

    /*查询用户报告的方法*/
    Report findReportById(Long userId, String reportId);

    /*根据成绩的返回用户的性格表的对象*/
    Analysis findAnaByScore(int score, String pageId);

    /*根据分析表的id去查询报告表的用户*/
    List<Report> findByAnalysisId(String analysisId);

}
